Fundamentos da metodologia

Histórico de revisões

Data Versão Descrição Autor(es)
05/09/2019 0.1 Iniciando o documento André Lucas
05/09/2019 0.2 Adicionando tópicos Scrum, Kanban, XP e RUP André Lucas
05/09/2019 0.3 Corrigindo tópicos André Lucas

1. Introdução

Para definição da metodologia adotada foi levado em consideração a duração da disciplina e os horários disponíveis da equipe. Foi feito um paralelo entre as metodologias utilizadas, principalmente nos modelos do Scrum, Kanban, XP e RUP. Decidimos então usar os elementos das metodologias que melhor se encaixam em nosso contexto.

2. Scrum

Scrum é uma metodologia ágil para gestão e planejamento de projetos de software.

No Scrum, os projetos são dividos em ciclos (tipicamente mensais) chamados de Sprints. O Sprint representa um Time Box dentro do qual um conjunto de atividades deve ser executado. Metodologias ágeis de desenvolvimento de software são iterativas, ou seja, o trabalho é dividido em iterações, que são chamadas de Sprints no caso do Scrum.

As funcionalidades a serem implementadas em um projeto são mantidas em uma lista que é conhecida como Product Backlog. No início de cada Sprint, faz-se um Sprint Planning Meeting, ou seja, uma reunião de planejamento na qual o Product Owner prioriza os itens do Product Backlog e a equipe seleciona as atividades que ela será capaz de implementar durante o Sprint que se inicia. As tarefas alocadas em um Sprint são transferidas do Product Backlog para o Sprint Backlog.

A cada dia de uma Sprint, a equipe faz uma breve reunião (normalmente de manhã), chamada Daily Scrum. O objetivo é disseminar conhecimento sobre o que foi feito no dia anterior, identificar impedimentos e priorizar o trabalho do dia que se inicia.

Ao final de um Sprint, a equipe apresenta as funcionalidades implementadas em uma Sprint Review Meeting. Finalmente, faz-se uma Sprint Retrospective e a equipe parte para o planejamento do próximo Sprint. Assim reinicia-se o ciclo.

2.1 Elementos utilizados do Scrum

  • Sprints: Tempo dentro do qual um conjunto de atividades deve ser executado;

  • Product Backlog: É uma lista com todas as funcionalidades que o produto deve possuir. Durante o projeto, pode ser alterado.

  • Sprint Backlog: Lista de funcionalidades a serem implementadas até o término da sprint;

  • Reunião de planejamento e revisão da sprint: Reunião no início da sprint com o objetivo de organizar o funcionamento da sprint com uma análise do que foi alcançado na sprint anterior;

3. Kanban

Mas, afinal, o que é Kanban? Em sua origem, trata-se de um sistema de controle e gestão de estoque e fluxo de peças que se utiliza de pequenos cartões coloridos — conhecidos como post-it — e também recebe o nome de gestão visual, em razão do uso de cores como sinalizadores.

Você deve estar se perguntando: o método utiliza post-its, aqueles cartõezinhos coloridos tão utilizados em nosso dia a dia?

Exatamente! A ideia central do método é muito simples e o material utilizado de fácil acesso, já bem difundido no cotidiano das empresas e escritórios.

3.1 Elementos utilizados do Kanban

Aplicaremos o Kanban através do plugin ZenHub. O quadro de tarefas permite uma melhor organização com as colunas: To Do, In progress, Review in progress, Review approved e Done.

4. eXtreme Programming

Extreme Programming (XP) é uma metodologia de desenvolvimento de software, nascida nos Estados Unidos ao final da década de 90. Vem fazendo sucesso em diversos países, por ajudar a criar sistemas de melhor qualidade, que são produzidos em menos tempo e de forma mais econômica que o habitual. Tais objetivos são alcançados através de um pequeno conjunto de valores, princípios e práticas, que diferem substancialmente da forma tradicional de se desenvolver software.

4.1 Elementos utilizados do XP

  • Programação em pares
  • Padronização de código
  • Pequenas entregas
  • Integração contínua
  • Refatoração

5. RUP

Um grande problema nos projetos atuais é o grande dinamismo e complexidade dos negócios nos dias de hoje. Cada vez mais os sistemas são complexos e precisam estar prontos em menos tempo. Mais do que isso, as necessidades mudam ao longo do tempo e a especificação de um sistema provavelmente será alterada durante seu desenvolvimento. Além disso, temos tecnologias novas (software e hardware) surgindo a cada dia. Algumas funcionam bem. Outras não. Visando atacar estes problemas, o RUP adota as seguintes premissas básicas:

Uso de iterações para evitar o impacto de mudanças no projeto, Gerenciamento de mudanças e Abordagens dos pontos de maior risco o mais cedo possível.

Nesta metodologia, o projeto passa por 4 fases básicas. Estas fases são:

  • Inception - entendimento da necessidade e visão do projeto,
  • Elaboration - especificação e abordagem dos pontos de maior risco,
  • Construction - desenvolvimento principal do sistema,
  • Transition - ajustes, implantação e transferência de propriedade do sistema

5.1 Elementos utilizados do RUP

  • Adaptação do processo

  • Colaboração entre a equipe

  • Elevar o nível de abstração

  • Foco na qualidade

6. Referências